import requests
from lxml import etree
from requests.api import head
from codeclass import KSClient
# 封装识别验证码图片的函数
def get(imgtext):
    Ks95man = KSClient()	  
    filename=imgtext
    res=None
    if Ks95man.GetTaken('Fatinn','c2100550'):   
        #获取成功,taken获取一次就可以了，taken 生成后如果不用参数"isref=1"刷新，就一直不会变。如果写死在您的软件中，就要慎用"isref=1"，否则您之前写死的软件都要改taken。
        
        #开始识别
        #获取文件二进制流										
        print('识别结果：'+Ks95man.PostPic(filename,1))
        res=Ks95man.PostPic(filename,1)
         #识别报错
        #Ks95man.ReportError(88)
    
    return res
if __name__ == "__main__":
    #页面原码数据
    url = 'https://so.gushiwen.cn/user/login.aspx'
    headers={
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.67'
    }
    page_text=requests.get(url=url,headers=headers).text
    tree=etree.HTML(page_text)
    code_img_srt='https://so.gushiwen.cn'+tree.xpath('//*[@id="imgCode"]/@src')[0]
    img_data = requests.get(url=code_img_srt,headers=headers).content
    #验证码图片保存到本地
    with open('./code.jpg','wb') as fp:
        fp.write(img_data)

    #调用打码平台的示例程序进行验证码图片识别
    code_text = get('code.jpg')
    print(code_text)